/**
* @author Eugenia Jose
* @author Fernando Turon
* @version 1.0 15-04-12
*
* La clase RemoteInterface proporciona la interface
*   que gestiona el acceso remoto a algunos m�todos
*
*/
package edu.uoc.tds.pec4.common;

import edu.uoc.tds.pec4.model.Estado;
import edu.uoc.tds.pec4.model.Prueba;
import edu.uoc.tds.pec4.model.Ronda;
import edu.uoc.tds.pec4.model.TipoEstado;
import edu.uoc.tds.pec4.model.TipoRonda;
import edu.uoc.tds.pec4.model.Usuario;
import edu.uoc.tds.pec4.model.Universidad;
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.sql.Connection;
import java.util.List;

/**
 * Interficie RMI. Debe extender de la clase java.rmi.Remote
 * Esta clase debe ser visible tanto para cliente como para servidor
 */
public interface RemotoInterface extends Remote {

    //Método que realiza la conexión de la bd
    public void conectaBBDD() throws RemoteException;

    //Método que realiza la desconexión de la bd cuando se desea salir en alguna de las pantallas
    public void desconectaBBDD() throws RemoteException;

    //Metodo para validar un Usuario a partir de su login y clave introducidos
    public Usuario validarUsuario(String login, String clave) throws RemoteException ;

    //Devuelve una instancia de Universidad correspondiente a un valor de id_universidad
    public Universidad getUniversidad(int id_universidad) throws RemoteException;

    //<FTM
    
    //Pruebas
    public Connection getConexion() throws RemoteException;
    public List<Prueba> getListaPruebas() throws RemoteException;
    public Prueba getPrueba(int id_prueba) throws RemoteException;
    public boolean validarPrueba(Prueba prueba) throws RemoteException;
    public void insertarPrueba(Prueba prueba) throws RemoteException;

    //Estado
    public Estado getEstado(int id_estado_prueba) throws RemoteException;
    //>>

    //Usuario
    public Usuario getUsuario(int id_usuario) throws RemoteException;

    //Ronda
    public void insertarRonda(Ronda ronda, TipoRonda tipoRonda) throws RemoteException;
    public boolean existeRonda(Ronda ronda, TipoRonda tipoRonda) throws RemoteException;

}


